package com.constellio.model.services.records.populators; import static java.util.Collections.singletonMap; import java.util.Collections; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.constellio.model.entities.schemas.Metadata; import com.constellio.model.entities.schemas.MetadataSchemaTypes; import com.constellio.model.entities.schemas.sort.StringSortFieldNormalizer; import com.constellio.model.services.records.FieldsPopulator; public class SortFieldsPopulator extends SeparatedFieldsPopulator implements FieldsPopulator { private static final Logger LOGGER = LoggerFactory.getLogger(SortFieldsPopulator.class); public SortFieldsPopulator(MetadataSchemaTypes types, boolean fullRewrite) { super(types, fullRewrite); } @Override public Map<String, Object> populateCopyfields(Metadata metadata, Object value) { StringSortFieldNormalizer normalizer = metadata.getSortFieldNormalizer(); Metadata sortField = metadata.getSortField(); if (normalizer != null) { Object normalizedValue; if (value == null) { normalizedValue = normalizer.normalizeNull(); } else { normalizedValue = normalizer.normalize((String) value); } if (normalizedValue == null) { normalizedValue = ""; } return singletonMap(sortField.getDataStoreCode(), normalizedValue); } else { return Collections.emptyMap(); } } }